While not really a part of the MIME
library, it is convenient to document this library here. It deals
with parsing Date headers and manipulating time.
(Not by using tesseracts, though, I'm sorry to say.)
These functions convert between five formats: A date string, an Emacs time structure, a decoded time list, a second number, and a day number.
Here's a bunch of time/date/second/day examples:
(parse-time-string "Sat Sep 12 12:21:54 1998 +0200")
⇒ (54 21 12 12 9 1998 6 nil 7200)
(date-to-time "Sat Sep 12 12:21:54 1998 +0200")
⇒ (13818 19266)
(time-to-seconds '(13818 19266))
⇒ 905595714.0
(seconds-to-time 905595714.0)
⇒ (13818 19266 0)
(time-to-days '(13818 19266))
⇒ 729644
(days-to-time 729644)
⇒ (961933 65536)
(time-since '(13818 19266))
⇒ (0 430)
(time-less-p '(13818 19266) '(13818 19145))
⇒ nil
(subtract-time '(13818 19266) '(13818 19145))
⇒ (0 121)
(days-between "Sat Sep 12 12:21:54 1998 +0200"
"Sat Sep 07 12:21:54 1998 +0200")
⇒ 5
(date-leap-year-p 2000)
⇒ t
(time-to-day-in-year '(13818 19266))
⇒ 255
(time-to-number-of-days
(time-since
(date-to-time "Mon, 01 Jan 2001 02:22:26 GMT")))
⇒ 4.146122685185185
And finally, we have safe-date-to-time, which
does the same as date-to-time, but returns a zero
time if the date is syntactically malformed.
The five data representations used are the following:
"Sat Sep 12 12:21:54 1998 +0200".(13818
26466).905595714.0.729644.(54 21 12 12 9
1998 6 t 7200).All the examples above represent the same moment.
These are the functions available:
date-to-timetime-to-secondsfloat-time, that does
this.seconds-to-timetime-to-daysdays-to-timedate-to-daytime-to-number-of-dayssafe-date-to-timetime-less-ptime-sincesubtract-timedays-betweendate-leap-year-ptime-to-day-in-year